package com.example.kiratest.test.py;

import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;

public class Java_Python_test {

    public static void main(String[] args) {
        // 创建Python解释器实例，用于执行Python代码
        PythonInterpreter interpreter = new PythonInterpreter();

        // 执行指定路径下的Python脚本文件
        // 参数说明："C:\\Users\\ziJian.zheng\\PycharmProjects\\getVersion\\Kira\\add.py" 是Python脚本的绝对路径
        interpreter.execfile("C:\\Users\\ziJian.zheng\\PycharmProjects\\getVersion\\Kira\\add.py");

        // 从Python解释器中获取名为"add"的函数
        // 第一个参数"add"：要获取的Python函数名
        // 第二个参数PyFunction.class：指定返回类型为Python函数类型
        PyFunction pyFunction = interpreter.get("add", PyFunction.class);

        // 定义两个整数变量，作为要传递给Python函数的参数
        int a = 5, b = 10;

        // 调用Python函数，并传递参数
        // 注意：Java中的参数需要先转换为Python的对应类型（这里用PyInteger包装int类型）
        PyObject pyobj = pyFunction.__call__(new PyInteger(a), new PyInteger(b));

        // 打印Python函数的返回结果
        System.out.println("the answer is: " + pyobj);

        // 最后应该关闭解释器释放资源（建议添加）
        interpreter.close();
    }
}